home *** CD-ROM | disk | FTP | other *** search
- #include "bbs.h"
- #define StripInfo(x,y) x=strlen(y)-1; while(x>-1) { if(y[x]=='.') { y[x]='\0'; break; } x--; }
-
- void SetNRAMS(void)
- {
- struct DiskObject *dobj;
- char **oldtooltypes;
- char *s;
- char temp[200];
- char FileName[200];
- int j;
- sprintf(temp,"%sNode%d/NRAMS",Cmds->BBSLoc,Cmds->AcLvl[LVL_NODE_NUMBER]);
- if(GetFirstName(temp,FileName))
- {
- if(SEROUT)
- {
- StripInfo(j,FileName);
- sprintf(temp,"%sNode%d/NRAMS/%s",Cmds->BBSLoc,Cmds->AcLvl[LVL_NODE_NUMBER],FileName);
- IO_Flags[IOFLAG_SER_IN]=1;
- IO_Flags[IOFLAG_SER_OUT]=0;
- IO_Flags[IOFLAG_SCR_OUT]=0;
- IO_Flags[IOFLAG_KBD_IN]=1;
- DropDTR();
- IntDoReset(Sopt->OffHook);
- SetEnvMsg("Setting NRAMS");
- dobj=GetDiskObject(temp);
- if(dobj)
- {
- oldtooltypes=dobj->do_ToolTypes;
- j=1;
- sprintf(FileName,"NRAM.%d",j++);
- while(s=FindToolType(oldtooltypes,FileName))
- {
- sprintf(FileName,"Setting NRAM.%d",j-1);
- SetEnvMsg(FileName);
- IntDoReset(s); Delay(60L);
- sprintf(FileName,"NRAM.%d",j++);
- }
- Reset_System(0);
- SetEnvStat(ENV_AWAITCONNECT);
- FreeDiskObject(dobj);
- }
- }
- }
- else
- {
- SetEnvMsg("NO NRAM.DEF");
- Delay(30L);
- SetEnvStat(ENV_AWAITCONNECT);
- }
- }
- int GetFirstName(char *path,char *buf)
- {
- struct FileLock *pdir = NULL;
- struct FileInfoBlock *dir_info = NULL;
- int returnval=0;
- if ((dir_info =(struct FileInfoBlock *)AllocDosObject(DOS_FIB,NULL)) == NULL)
- {
- Delay(300L);
- return(0);
- }
- if (! (pdir=(struct FileLock *)Lock(path,(ULONG)ACCESS_READ)) )
- {
- UnLock((BPTR)pdir);
- FreeDosObject(DOS_FIB,dir_info);
- return(0);
- }
- if ( ! Examine((BPTR)pdir, dir_info) )
- {
- UnLock((BPTR)pdir);
- FreeDosObject(DOS_FIB,dir_info);
- return(0);
- }
- if(ExNext((BPTR)pdir,dir_info))
- {
- if(dir_info->fib_DirEntryType < 0L )
- {
- returnval=1; strcpy(buf,dir_info->fib_FileName);
- }
- }
- UnLock((BPTR)pdir);
- FreeDosObject(DOS_FIB,dir_info);
- return(returnval);
- }